Data Format

Points are given as triplets (x, y, z) headed by the identifier Points.   Lines are given as pairs of triplets headed by the identifier Lines.  If a set of triplets are read from a file without a leading identifier, then Points is assummed.

 See the example sample.S3d and points50.S3d as samples.

For example:

Lines
 1.0000000 0.000  0.000000000
 1.0000000 0.125  0.060718407
 1.0000000 0.250  0.198507717
 1.0000000 0.375  0.435393438
 1.0000000 0.500  0.758335784
 1.0000000 0.625  1.170259035
 1.0000000 0.750  1.673475280
 1.0000000 0.875  2.244995174
Points
 0.8079185 1.0000000  0.4169031
 0.8095110 0.8348173  0.3968917
 0.8104789 0.6694701  0.3847278
 0.8109178 0.5038263  0.3792126
 0.8105190 0.3376173  0.3842242
 0.8091052 0.1703332  0.4019911

Extensions

In addition to the above formats, the Points format has been extended to allow
optional arguments.  The format is:

Points   [radius]  [shade]

Where,

radius is the optional floating point radius.  I suggest you keep it inside the bounding cube, as I sort of assume that you know what you're doing at this stage.

and shade is a floating point number between 0. and 1.  i.e. NX_BLACK to NX_WHITE.

Look for Molecule.S3d to see an example.

I will probably add line widths and patterns to the next version.

Would color be helpful?  How about labels inside the points (1 letter)?

Any ideas about how do do this?